home *** CD-ROM | disk | FTP | other *** search
/ PC Magazine Extra 1998 Summer: The Perfect PC / PC Magazine Extra - The Perfect PC - Summer 1998 Vol 6 #2.iso / dwzdika / 1519 / compplay.bat next >
DOS Batch File  |  1996-06-21  |  2KB  |  91 lines

  1. @echo off
  2. if NOT '%trnct%'=='1' GOTO NotSecond
  3. :: On 2d move, take center if possible, corner if not
  4. set mv=7
  5. if '%sq5%'=='-' set mv=5
  6. GOTO End
  7. :NotSecond
  8. IF NOT '%trnct%'=='111' GOTO NotFourth
  9. :: On 4th move, avoid two-way fork
  10. set mv=4
  11. IF '%sq1%%sq9%'=='XX' goto End
  12. IF '%sq3%%sq7%'=='XX' goto End
  13. set mv=1
  14. IF '%sq1%'=='-' if '%sq4%%sq2%'=='XX' goto End
  15. set mv=3
  16. IF '%sq3%'=='-' if '%sq2%%sq6%'=='XX' goto End
  17. set mv=7
  18. IF '%sq7%'=='-' if '%sq8%%sq4%'=='XX' goto End
  19. set mv=9
  20. IF '%sq9%'=='-' if '%sq6%%sq8%'=='XX' goto End
  21. :NotFourth
  22. :: Check for a winning move
  23. set sought=OO
  24. goto Test
  25. :RetOO
  26.  
  27. :: Check for a blocking move
  28. set sought=XX
  29. goto Test
  30. :RetXX
  31.  
  32. :: Check for row with one O and two blank
  33. set sought=-O
  34. goto Test
  35. :Ret-O
  36. set sought=O-
  37. goto Test
  38. :RetO-
  39.  
  40. :: Nothing? Just pick first unused square
  41. set mv=1
  42. if '%sq1%'=='-' GOTO End
  43. set mv=2
  44. if '%sq2%'=='-' GOTO End
  45. set mv=3
  46. if '%sq3%'=='-' GOTO End
  47. set mv=4
  48. if '%sq4%'=='-' GOTO End
  49. set mv=6
  50. if '%sq6%'=='-' GOTO End
  51. set mv=7
  52. if '%sq7%'=='-' GOTO End
  53. set mv=8
  54. if '%sq8%'=='-' GOTO End
  55. set mv=9
  56. GOTO End
  57.  
  58. :Test      
  59. set mv=1
  60. if '%sq1%'=='-' if '%sq2%%sq3%'=='%sought%' GOTO End
  61. if '%sq1%'=='-' if '%sq4%%sq7%'=='%sought%' GOTO End
  62. if '%sq1%'=='-' if '%sq5%%sq9%'=='%sought%' GOTO End
  63. set mv=3
  64. if '%sq3%'=='-' if '%sq1%%sq2%'=='%sought%' GOTO End
  65. if '%sq3%'=='-' if '%sq6%%sq9%'=='%sought%' GOTO End
  66. if '%sq3%'=='-' if '%sq5%%sq7%'=='%sought%' GOTO End
  67. set mv=7
  68. if '%sq7%'=='-' if '%sq8%%sq9%'=='%sought%' GOTO End
  69. if '%sq7%'=='-' if '%sq1%%sq4%'=='%sought%' GOTO End
  70. if '%sq7%'=='-' if '%sq5%%sq3%'=='%sought%' GOTO End
  71. set mv=9
  72. if '%sq9%'=='-' if '%sq7%%sq8%'=='%sought%' GOTO End
  73. if '%sq9%'=='-' if '%sq3%%sq6%'=='%sought%' GOTO End
  74. if '%sq9%'=='-' if '%sq1%%sq5%'=='%sought%' GOTO End
  75. set mv=2
  76. if '%sq2%'=='-' if '%sq1%%sq3%'=='%sought%' GOTO End
  77. if '%sq2%'=='-' if '%sq5%%sq8%'=='%sought%' GOTO End
  78. set mv=4
  79. if '%sq4%'=='-' if '%sq5%%sq6%'=='%sought%' GOTO End
  80. if '%sq4%'=='-' if '%sq1%%sq7%'=='%sought%' GOTO End
  81. set mv=6
  82. if '%sq6%'=='-' if '%sq4%%sq5%'=='%sought%' GOTO End
  83. if '%sq6%'=='-' if '%sq3%%sq9%'=='%sought%' GOTO End
  84. set mv=8
  85. if '%sq8%'=='-' if '%sq7%%sq9%'=='%sought%' GOTO End
  86. if '%sq8%'=='-' if '%sq2%%sq5%'=='%sought%' GOTO End
  87. goto Ret%sought%
  88.  
  89. :End
  90. set sought=
  91.